package com.huirui.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.huirui.server.pojo.dto.CategoryDto;
import com.huirui.server.pojo.entity.Category;
import com.huirui.server.pojo.result.PageResult;
import com.huirui.server.pojo.vo.*;

import java.util.List;

/**
 * @author yujun
 * @description 针对表【t_category(商品分类表)】的数据库操作Service
 * @createDate 2025-09-13 11:22:24
 */
public interface CategoryService extends IService<Category> {

    List<TopCategoryVo> listTopCategories();

    List<SecondaryCategoryVo> listSecondaryCategories(Long id);

    List<TertiaryCategoryVo> listTertiaryCategories(Long id);


    List<CategoryVo> getCategoryList();

    void deleteCategoryById(Long id);

    List<CategoryVo> getFirstTwoLevelsOfCategories();

    void addCategory(CategoryDto categoryDto);

    void modifyCategory(CategoryDto categoryDto);

    void changeCategoryStatus(Long id, Long status);

    List<CategoryVo> getCompleteCategoryList();

    List<CategoryCascaderVo> queryCategoryCascader();

    List<TopCategoryVo> listTopWithoutRankingCategories();

    void addNewCategory(CategoryDto categoryDto);

    void updateCategory(CategoryDto categoryDto);

    List<CategoryAnotherVo> getPopupCategoryData(Long id);

    PageResult<ProductBriefInfoVo> listProductListByCategoryId(Long categoryId, Integer orderBy, Integer priceOrder, Long page, Long pageSize);

    List<Long> getCategoryIdListByCategoryId(Long categoryId);


}
